package com.example.blog.utils;

import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;

import java.util.UUID;

public class SecurityUtils {//加密
    //password 用户输入的密码
    //return 数据库中存储的信息： 盐值 + MD5(明文 + 盐值)
    public static String encrypt(String Password){
        //生成随机盐值
        String salt = UUID.randomUUID().toString().replace("-","");
        //对明文+盐值 进行MD5加密
        String finalPassword = DigestUtils.md5DigestAsHex((Password+salt).getBytes());
        return salt + finalPassword;

    }


    //验证密码是否正确
    public static boolean verify(String inputPassword, String sqlPassword){
        if(!StringUtils.hasLength(inputPassword)){
            return false;
        }
        if(sqlPassword==null || sqlPassword.length() != 64){
            return false;
        }
        //获取盐值(从数据库中截取)
        String salt =sqlPassword.substring(0,32);
        //根据用户输入的登录密码 + 盐值 进行加密  MD5(明文+盐值)
        String finalPassword = DigestUtils.md5DigestAsHex((inputPassword+salt).getBytes());
        //返回对比结果   盐值 + MD5(明文 + 盐值) ？= 数据库中的 盐值 + MD5(明文 + 盐值)
        return (salt+finalPassword).equals(sqlPassword);

    }

//    public static void main(String[] args) {
//        System.out.println(encrypt("123456"));
//        System.out.println(encrypt("123456"));
//        System.out.println(encrypt("123456"));
//
//
//
//        System.out.println(verify("123456", "0897540ab2d14b458f2b42384c8f4295ae18d2f09b31046bb74f9e6f01fe359d"));
//        System.out.println(verify("123456", "01a1bb6f739440309bb5305a24bb53a830ecca57751f064b939dea0f81a82b68"));
//        System.out.println(verify("123456", "fb3c6c6c12dc4da896b200b312429d782fbf7094f92b047576d119979b7a8a26"));
//    }
}
